-
Notifications
You must be signed in to change notification settings - Fork 992
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Fixes #37134 - upgrade to node 18 and npm 8 #10016
Fixes #37134 - upgrade to node 18 and npm 8 #10016
Conversation
For context, this is blocking EL9 so if we can't get this done for Foreman 3.10 we'll need to postpone that effort to 3.11. I'd really like to avoid that. |
If webpack 5 is not reverted I dont see a reason for this to not be merged really soon. Looking at the test failures now. |
@ekohl do we need npm8 for EL9? |
61ddba9
to
f3156aa
Compare
Most likely In EL9 they've packaged NPM 8 and we're not downgrading that to 6. So if we need NPM (and I'm pretty sure we do), we need to be on NPM 8. It is acceptable to also move our other platforms to NodeJS 16 and NPM 8 if needed (and I think we can't support both). However, looking at the Foreman 3.10 schedule we'll have stabilization week from 2024-02-12 - 2024-02-17. The week before we have cfgmgmtcamp where both @evgeni and I will be. Essentially that means we need to get this and the needed rebuilds done next week. I'm skeptical we can make that work, unless @ehelms steps in. Even then, getting reviews will be hard. |
Yeah, npm8 is what we get via CentOS packages and we can't easily avoid that. |
f3156aa
to
89c6104
Compare
For clarity sake, on EL 8, we get the following:
If this is just a question of iterating over packages for rebuilds, I can certainly help grind through that. I would need more clarity on if theforeman/foreman-js#404 is required and if that's the only property affected by this change? IIRC we do not store the lock files for any other repository. |
3e060e0
to
b78f582
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
When I tried I could actually install it without forcing legacy peer dependencies. Are you sure it's still needed?
did you run |
No, I didn't. I just assumed that the initial error (plainly refusing to install at all) was the only error. Just to be clear, I'm not opposed to using it for now if it gets us on NodeJS 16 faster. |
Should we just do the jump and update to node 18 instead? |
#10045 should resolve those. They also happen with current NodeJS. |
39648ff
to
17dc76d
Compare
All the plugin tests now pass. That means there's only the NodeJS 14 situation left. We plan on shipping EL8 with NodeJS 14 for Foreman 3.10 so it will be nice to testing that. Otherwise you may pull in dependencies that are Node 14 incompatible. That makes me wonder: why is this snapshot changing? Are there also effects on the end user because of this? If not, what is the test really proving? |
Node has changes how dates are in strings, so instead of |
Digging a bit deeper, it's nodejs/node#45945 but I think at runtime Is there a way to provide a NodeJS version dependent snapshot? Would that make sense? |
We can probably do that with setting different paths for snapshots for different versions. Are we planning to test and actively support node 14 or just leave it as an option? |
As I said in #10016 (comment), we'll have it at least for Foreman 3.10 so I'd prefer to have testing for it too. |
17dc76d
to
89ed7ab
Compare
updated snapshots to be conditional |
89ed7ab
to
f42c9e3
Compare
@MariaAga, needs rebase :/ |
f42c9e3
to
b5169b1
Compare
.github/matrix.json
Outdated
@@ -1,5 +1,5 @@ | |||
{ | |||
"postgresql": ["12"], | |||
"ruby": ["2.7", "3.0"], | |||
"node": ["14"] | |||
"node": ["18"] |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This should be both 14 and 18 now:
"node": ["18"] | |
"node": ["14", "18"] |
b5169b1
to
55fb49d
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Recently I noticed we also have https://theforeman.org/contribute.html#SupportedNode.jsversions and I realized we also need to update that for Ruby. Isn't duplication great?
Waiting for the container build to finish, but I think this is ready to merge now. |
55fb49d
to
bb76e86
Compare
@evgeni we should pick this to 3.10 too, right? |
Given we publish EL9 packages that use NodeJS 18 it would be formally correct to do that, yes. |
No description provided.